/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package kursjava2;
import java.io.Console;
import java.math.BigInteger;
import java.util.Scanner;
/**
 *
 * @author Simplevolk
 *
 * 1. Вычислить сумму S значений функции Y=f(x):
;
 */
public class lab {

    public static int factorial(int n)
    {
    if (n < 1) {
//    throw new IllegalArgumentException("argument must be positive");
  }
  int result = 1;
  for (long i = 2; i <= n; i++) {
    result *= i;
  }
  return result;
    }
    /**
     * @param args the command line arguments
     */



   private static double sravnenie(String a1, String b1, String c1) {
        
        double max,min,a,b,c;
 //   x = min(max(a,b), c);
        a=Double.parseDouble(a1);
        b=Double.parseDouble(b1);
        c=Double.parseDouble(c1);
        if(a>b)
        {
        max=a;
        }
        else
        {
        max=b;
        }

      if(max<c)
      {
      min=max;
      }
 else {
      min=c;
      }

      return min;
    }
    public static void first(int m,double S1)
    {
    // выполнение 1-й части задания
        for(int i=1;i<m;i++)
        {
            double x=-1+0.2*i;
            S1+=Math.log10((x*x+1)/factorial(i-1));


        System.out.println("S "+S1);


        }
 //====================================================================
    }
    public static void second(double[] test,double[] Y,int l,int n )
    {
    // ввод данных в консоль
         System.out.println("Vvedite Y0,Y1,Y2: \n");
        for(int k=0;k<=2;k++)
        {
        Scanner input= new Scanner(System.in);
        String str=input.next();


        test[k]=Double.parseDouble(str);


        Y[k]=test[k];
        }
 //==================================================================

 // выполнение 2-й части задания

         while((Y[l]-Y[l-1]<2.71828183))
         {



       if(l>=n-1)
       {break;}
         Y[l]=1/Math.sqrt((10+Y[l-2]*Y[l-2]+Y[l-3]*Y[l-3]));
         l++;

         }


        System.out.println(Y[l-1]);// System.out.println(Y[n]);
//========================================================================
    }
    public static void main(String[] args) {
        lab lab=new lab();
        // TODO code application logic here
        int m=10;
        double[] S=new double[m];
        double[] test=new double[3];
        int n=1000000;
        double[] Y=new double[n];
        double srv;
        double S1 = 0;
        int l=3;

        // тестовое
        
            
          if(args.length>0)
          {
                if(args[0].equals("first"))
                    {
                    System.out.println(" vypolniaetsia 1-ia zadacha");
                    lab.first(m, S1);
                    }
                if(args[0].equals("second"))
                    {
                    System.out.println("vypolniaetsia 2-ia zadacha");
                    lab.second(test, Y, l, n);
                    }
                srv=sravnenie(args[0],args[1],args[2]);
                System.out.println("sravnenie = "+srv);
        }
                


        
     

     

        
//   x = min(max(a,b), c);
        
      
    }

   

}
